package com.maishi.programmer.jainzhioffer;

/**
 * Created by brossdong on 2018/5/5.
 * 二维数组中查找
 * 在一个二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。
 * 请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
 */
public class TestProblem4 {

    /**
     * 1 2 8 9
     * 2 4 9 12
     * 4 7 10 13
     * 6 8 11 15
     */
    public static boolean Find(int target, int [][] array) {
        boolean found = false;
        if (array == null || array.length < 1) return false;
        //获取二维数组的行数
        int rows = array.length;
        //获取二维数组的列数
        int colums = array[0].length;
        if (array != null && rows > 0 && colums > 0) {
            int row = 0;
            int colum = colums - 1;
            while (row < rows && colum >= 0) {
                int tempValue = array[row][colum];
                if (target > tempValue) {
                    ++row;
                } else if (target < tempValue) {
                    --colum;
                } else {
                    found = true;
                    break;
                }
            }
        }
        return found;
    }

    public static void main(String[] args) {

    }

}
